package rbb.itm5.bwinf.roboter.Model;

/**
 * Diese Klasse speichert alle Informationen für einen gegangen Schritt.
 *
 * @author Dominik Jakielski
 */
public class Step {

    private int x, y, direction;
    private boolean isRotation = false;

    /**
     * Erstellt einen Schritt
     *
     * @param x horizontale Position
     * @param y vertikale Position
     * @param direction aktuelle Blickrichtung des Roboters
     */
    public Step(int x, int y, int direction) {
        super();
        this.x = x;
        this.y = y;
        this.direction = direction;
    }

    /**
     * Erstellt einen Schritt
     *
     * @param x horizontale Position
     * @param y vertikale Position
     * @param direction aktuelle Blickrichtung des Roboters
     * @param isRotation Hat sich die Blickrichtung verändert?
     */
    public Step(int x, int y, int direction, boolean isRotation) {
        super();
        this.x = x;
        this.y = y;
        this.direction = direction;
        this.isRotation = isRotation;
    }

    /**
     * Gibt die horizontale Position zurück.
     *
     * @return horizontale Position.
     */
    public int getX() {
        return x;
    }

    /**
     * Gibt die vertikale Position zurück.
     *
     * @return vertikale Position.
     */
    public int getY() {
        return y;
    }

    /**
     * Gibt die Blickrichtung des Roboters zurück.
     *
     * @see RoboterInterface
     * @return Blickrichtung
     */
    public int getDirection() {
        return direction;
    }

    /**
     * War der Schritt eine Richtungsänderung?
     *
     * @return Ist eine Drehung.
     */
    public boolean isRotation() {
        return isRotation;
    }
}
